creational pattern
Abstract factory pattern, which provides an interface for creating related or dependent objects without specifying the objects' concrete classes. Builder pattern, which separates the construction of a complex object from its representation so that the same construction process can create different representations. Prototype pattern, which specifies the kind of object to create using a prototypical instance, and creates new objects by cloning this prototype. Singleton pattern, which ensures that a class only has one instance, and provides a global point of access to it.